import os
import time
import multiprocessing


def task():
    # 假设文件中保存的内容就是一个值：10
    with open('f1.txt', mode='r', encoding='utf-8') as f:
        current_num = int(f.read())

    print("排队抢票了")
    time.sleep(1)

    current_num -= 1
    print('进程号', os.getpid())
    print('current_num:', current_num)
    with open('f1.txt', mode='w', encoding='utf-8') as f:
        f.write(str(current_num))


if __name__ == '__main__':
    for i in range(20):
        p = multiprocessing.Process(target=task)
        p.start()

"""
对同一文件数据进行操作，10代表只能操作10次
我们需要的，是该数据会依次减少：9、8、7、6、5、4、3、2、1...
但是实际运行中发现并不是这样：9、9、9、9、9...
原因：多进程操作时的数据混乱

引出进程锁
"""